package com.jinyi.wwdeng.ui.login.presenter;

import android.content.Context;

import com.jinyi.base.mvp.BasePresenter;
import com.jinyi.wwdeng.ui.login.contract.LoginContract;
import com.jinyi.wwdeng.ui.login.interfaces.LoginLoadDataCallback;
import com.jinyi.wwdeng.ui.login.model.LoginModel;

/**
 * JinYiTest
 *
 * @Author：wwdeng
 * @CreateTime：2024/4/14 18:45
 * <pre>
 *  Presenter层
 * </pre>
 */
public class LoginPresenter extends BasePresenter<LoginContract.View, LoginModel> implements LoginContract.Presenter, LoginLoadDataCallback {

    @Override
    protected LoginModel createModel() {
        return new LoginModel(this);
    }

    /**
     * 请求数据入口
     * @param url
     */
    @Override
    public void requestData(String url) {
        if (isViewDestory()) {
            return;
        }
        getMvpView().showLoading("");
        model.executeGetRequest(url);
    }

    /**
     * 数据请求成功--更新UI
     * @param successData
     */
    @Override
    public void onSuccess(String successData) {
        if (isViewDestory()) {
            return;
        }
        getMvpView().hideLoading();
        getMvpView().showSuccessData(successData);
    }

    /**
     * 数据请求失败--更新展示错误页面UI
     * @param errorData
     */
    @Override
    public void onFailure(String errorData) {
        if (isViewDestory()) {
            return;
        }
        getMvpView().hideLoading();
        getMvpView().showFailureData(errorData);
    }

    @Override
    public Context getContext() {
        if (!isViewDestory()) {
            return getMvpView().getContext();
        }
        return null;
    }
}
